// IAction.java
package org.zjx.action;


import org.zjx.core.IWindow;

/**
 * 命令接口 - 线程安全设计
 */
public interface IAction {

    /**
     * 获取命令名称
     */
    String getActionName();

    /**
     * 获取目标窗口
     */
    IWindow getTargetWindow();

    /**
     * 是否需要激活窗口
     */
    boolean isRequiresActiveWindow();

    /**
     * 执行命令
     * @return 执行是否成功
     * @throws InterruptedException 如果执行被中断
     */
    boolean  execute() throws InterruptedException;
}